/*!
 * \file GapStateRegisterPend.h
 * \brief State where connection between MGW and SGW is being established
 */

#ifndef MGW_GAP_STATE_REGISTER_PEND_H
#define MGW_GAP_STATE_REGISTER_PEND_H

#include "GapStateBase.h"
#include "GapGenerator.h"

namespace tsc
{
namespace mgw
{

/**
 * Pending state while connection with SGW is being established
 */
class GapStateRegisterPend : public GapStateBase
{
public:

	static GapStateRegisterPend* instance();

protected:

    virtual void
    handleEventGapConnectRej(
        GapGenerator* gapGen,
        GapEventConnectRej* event,
        EventData*& eventData);

    virtual void
    handleEventGapConnectCfm(
        GapGenerator* gapGen,
        GapEventConnectCfm* event,
        EventData*& eventData);

    virtual void
    handleEventGapT709Expired(
        GapGenerator* gapGen,
        GapEventT709Expired* event,
        EventData*& eventData);

	virtual ~GapStateRegisterPend();

private:
	GapStateRegisterPend();

};

} // namespace mgw
} // namespace tsc

#endif // MGW_GAP_STATE_REGISTER_PEND_H
